20126
18642
У мене є набір даних, наведений нижче
ім'я col1 col2
a 10,3 10,9
б 11 15
c 20 7.2
d 6.2 6.2
e 5,3 5,4
f 4,5 4,0
я хочу порівняти col1 та col2 мого df, і я хочу зробити ще один стовпець, в якому, порівнюючи значення col1 та col2, якщо значення col2 зростає від col1, тоді я хочу ввести збільшення поряд з ними в моєму стовпці і якщо вони зменшуючи, тоді я хочу написати зменшувальний і ніяких змін, якщо вони однакові
і я хочу, щоб мій результат був таким
ім'я col1 col2 col3
a 10,3 10,9 збільшується
b 11 15 збільшується
c 20 7.2 зменшується
d 6,2 6,2 без змін
e 5,3 5,4 збільшується
f 4,5 4,0 зменшується 
З dplyr:
df%>%
мутувати (Col3 = ifelse (col2 == col1,
"без змін",
ifelse (col2> col1,
"збільшується", "зменшується")))
Або використовуючи case_when, як запропонував @akrun:
df%>%
mutate (Col3 = case_when (col1 == col2 ~ "без змін",
col2> col1 ~ "Збільшення",
TRUE ~ "зменшується"))
Результат:
ім'я col1 col2 Col3
1 a 10,3 10,9 збільшується
2 б 11,0 15,0 збільшується
3 c 20,0 7,2 зменшується
4 д 6,2 6,2 без змін
5 e 5,3 5,4 збільшується
6 f 4,5 4,0 зменшується
Дані:
df <-structure (list (name = c ("a", "b", "c", "d", "e", "f"), col1 = c (10.3,
11, 20, 6.2, 5.3, 4.5), col2 = c (10.9, 15, 7.2, 6.2, 5.4, 4)), class = "data.frame", row.names = c (NA,
-6 л))
|
Ми можемо відняти col1 від col2, а потім за допомогою знака призначити значення
df $ col3 <- c ("зменшується", "без змін", "збільшується") [знак (df $ col1 - df $ col2) + 2]
df
# ім'я col1 col2 col3
# 1 a 10.3 10.9 зменшується
# 2 b 11,0 15,0 зменшується
# 3 c 20,0 7,2 збільшується
# 4 д 6,2 6,2 без змін
# 5 e 5.3 5.4 зменшується
# 6 f 4.5 4.0 збільшується
Або використовуючи dplyr, ми можемо використовувати case_when
бібліотека (dplyr)
df%>%
mutate (col3 = case_when (col1 == col2 ~ "без змін",
col1> col2 ~ "збільшується",
TRUE ~ "зменшується"))
|
Основа R
df $ col3 <-with (df, ifelse (col1> col2, "зменшується",
ifelse (col1